package com.javachamp.generics;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

interface Chewable2 {
}

class Meat2 implements Chewable2 {
}

public class Tester {

	public static List<? extends Chewable2> printSize(
			List<? extends Chewable2> list) { // Line 10
		System.out.println(list.size());
		return list;
	}

	public static void main(String[] args) {

		List<? extends Chewable2> list1 = new ArrayList<Meat2>(); // Line 16
		List<Chewable2> list2 = new ArrayList<Chewable2>(); // Line 17
		List<Meat2> list3 = new ArrayList<Meat2>(); // Line 18

		list2.add(new Meat2());

		// list1 = printSize(list1); // Line 20
		// list2 = printSize(list2); // Line 21
		// list3 = printSize(list3); // Line 22

	}

	private void met() {
		// insert code here
		Map<List<Integer>, Number> map = new HashMap<List<Integer>, Number>();
		
		map.put(new ArrayList<Integer>(), 1);
		map.put(new ArrayList<Integer>(), 12);
		map.put(new LinkedList<Integer>(), new Integer(1));
		map.put(new LinkedList<Integer>(), new Long(1));

	}
	
//	private void m2(Map<List<Integer>, ?> map) {
//		map.put(new ArrayList<Integer>(), new Object());
//		map.put(new ArrayList<Integer>(), 12);
//		map.put(new LinkedList<Integer>(), new Integer(1));
//		map.put(new LinkedList<Integer>(), new Long(1));
//		
//	}
}
